package com.bookcloud.java21.chapter2.数据类型_数组及相关操作2_8;

import java.util.Arrays;

/** 2.8 数据类型— **数组及相关操作 */
public class Lesson28 {
  public static void main(String[] args) {
    /*
    一、数组的定义及初始化：
        1.数组的定义：
            数据类型[] 数组名;
        2.数组的初始化：
            1)动态初始化：
                数组名 = new 数据类型[数组长度];
            2)静态初始化：
                数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3};
                数据类型[] 数组名 = {元素1,元素2,元素3};
     */
    // 方式1：声明并初始化
    int[] arr1 = {1, 2, 3};
    System.out.println("arr1的元素为：" + Arrays.toString(arr1));
    // 方式2：声明、初始化、赋值
    int[] arr2 = new int[3];
    arr2[0] = 1;
    arr2[1] = 2;
    arr2[2] = 3;
    // arr2[3] = 4;
    System.out.println("arr2的元素为：" + Arrays.toString(arr2));
    // 方式3：声明、初始化、赋值
    int[] arr3 = new int[] {1, 2, 3};
    System.out.println("arr3的元素为：" + Arrays.toString(arr3));
    // 多维度数组，先固定长度，再初始化
    int[][] arr4 = new int[2][3];
    arr4[0][0] = 1;
    arr4[0][1] = 2;
    arr4[0][2] = 3;
    arr4[1][0] = 4;
    arr4[1][1] = 5;
    arr4[1][2] = 6;
    System.out.println("arr4的元素为：" + Arrays.deepToString(arr4));
    String[][] arr5 = {
      {"1001", "张三", "18"},
      {"1002", "李四", "22"},
      {"1003", "王五", "12"}
    };
    System.out.println("arr5的元素为：" + Arrays.deepToString(arr5));
    /*
    二、数组的API方法使用
     */
    // 1.数组的长度：数组名.length
    System.out.println("arr1的长度为：" + arr1.length);
    // 2.数组的元素：数组名[索引]
    System.out.println("arr1的第一个元素为：" + arr1[0]);
    // 创建数组，保存名称
    String[] names = {"张三", "李四", "王五"};
    System.out.println("Names:" + Arrays.toString(names));
    names[1] = "**";
    System.out.println("Names:" + Arrays.toString(names));
    // 取数组names最后一位
    System.out.println("names的最后一位为：" + names[names.length - 1]);
  }
}
